home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok69.lha / PatternLibrary / pgrep.doc < prev    next >
Text File  |  1993-08-15  |  5KB  |  127 lines

  1.  
  2.  NAME
  3.       pgrep - search a file for a pattern or string
  4.  
  5.  
  6.  VERSION
  7.       pgrep V0.4
  8.  
  9.  
  10.  SYNOPSIS
  11.       pgrep [-<flags>...] <pattern> [<file>...]
  12.  
  13.  
  14.  DESCRIPTION
  15.       pgrep is a small grep command. If one or more files are specified, it
  16.       will search in these files for lines matching a pattern. If no files
  17.       are given, it will use the standard input for its searching operation.
  18.       Normally, each line found is copied to the standard output. pgrep
  19.       supports standard Amiga pattern.
  20.  
  21.       If <pattern> does not contain any pattern characters, the fast Boyer-
  22.       Moore string searching algorithm will be used.
  23.  
  24.       Sorry, it might take some time, if you use a real pattern instead, but
  25.       the average case works fast! And don't worry if you can't understand
  26.       why some pattern will be found very fast and others won't. I really
  27.       can understand this ;-) So in most cases the pattern
  28.       "(f#o|bar|f#obar)" will take much more time to be found than e.g.
  29.       "foobar#(f#o|bar)foobar". I hope to fix this in future.
  30.  
  31.       pgrep might return one of the following values, which can be checked
  32.       within a running script:
  33.  
  34.       0 -    A match was found
  35.  
  36.       5 -    No match was found
  37.  
  38.       10 -   An error was detected
  39.  
  40.              Please note that the following things, that will cause a
  41.              string to be written to standard error, are only warnings and
  42.              won't return value 10 since pgrep will continue nevertheless.
  43.              This happens
  44.               - if a specified file was not found
  45.               - if a specified switch is unknown
  46.  
  47.  
  48.     Options
  49.       -c   Only a count of matching lines is printed.
  50.  
  51.       -i   Ignore uppercase/lowercase distinctions during comparisons
  52.  
  53.       -l   Only the names of files with matching lines are listed (once),
  54.            seperated by new-lines. This will reset option c.
  55.  
  56.       -n   Each line is preceded by its relative line number starting at 1.
  57.            This option is ignored if -c, -l or -q is specified.  The
  58.            linecounter will be increased when ' ' or new-line is found. Note
  59.            that some editors create more newlines.
  60.  
  61.       -q   (Quiet) Do not write anything to the standard output regardless
  62.            of matching lines. Overwrites any option that would produce
  63.            output. Note that error messages are written to stderr.
  64.  
  65.       -s   Error messages are suppressed
  66.  
  67.       -v   All lines but those matching are printed
  68.  
  69.       -x   Matches are recognized only when the entire input line matches
  70.            the pattern.
  71.  
  72.  
  73.     Notes
  74.       -  You have to quote pattern characters if you want to search for
  75.          strings that contain those characters. Otherwise if you e.g. enter
  76.          "pgrep foo*bar" all lines that match with "#?foo#?bar#?" will be
  77.          printed. So simply use "foo'*bar" as a search pattern.
  78.  
  79.       -  If you want to search for a pattern that begins with a "-", you
  80.          could type "%-..." which is exactely the same since "%" is an empty
  81.          string. Otherwise your pattern will be treated as some options.
  82.  
  83.       -  pgrep will increase it's linecounter after each linefeed (0x0A) or
  84.          nullbyte (0x00). TurboText is able to count the lines in the same
  85.          way, but I think CED isn't, so CED will begin a new line behind
  86.          e.g. ^L, which seams to cause errors in linenumbers when pgrepping
  87.          e.g. pattern.doc. So be careful if you're using binary files and
  88.          option -n.
  89.  
  90.       -  If a line takes more than about 1KB, pgrep will wrap it internally.
  91.          If there's a match within the wrap, it won't be found!
  92.  
  93.  
  94.  EXAMPLES
  95.       1> pgrep pattern pgrep.doc
  96.            Will grep all lines of the file pgrep.doc that contain the string
  97.            "pattern".
  98.  
  99.       1> pgrep -v pattern <pgrep.doc
  100.            Will grep all lines of stdin (here: pgrep.doc), that do not
  101.            contain the string "pattern".
  102.  
  103.       1> pgrep -vi pattern <pgrep.doc
  104.            Same as above, but case-insensitive.
  105.  
  106.       1> pgrep -c pa#tern pgrep.doc pattern.doc
  107.            Will print the number of lines of the files pgrep.doc and
  108.            pattern.doc, that contain the pattern "pa#tern".
  109.  
  110.       1> pgrep -n -x # pa#tern.library/* pattern.doc
  111.            Will print all lines of the file pattern.doc, that match exactely
  112.            with the pattern "# pa#tern.library/*".  The linenumber of each
  113.            matching line will be displayed.
  114.  
  115.  
  116.  TODO
  117.       -  Option to display the bytesoffset of a match with a pattern.
  118.  
  119.       -  Use of SearchPattern() as soon as pattern.library supports this
  120.          function...
  121.  
  122.  
  123.  AUTHOR
  124.       This Freeware was written by Angela Schmidt, Neu-Ulm, Germany.
  125.       EMail: Angela@rz.uni-karlsruhe.de
  126.       For further details please refer to Pattern.Doc.
  127.